package com.edais.service.gift;


import com.edais.domain.gift.PointAccount;
import com.edais.domain.gift.PointOrder;

import java.util.Date;
import java.util.Map;

/**
 * PointOrderService
 * Created by haoyx on 2016/10/8.
 */
public interface PointOrderService {

    /**
     * 创建积分订单
     *
     * @param logInfo       日志头
     * @param account      积分账户
     * @param nowDate   当前时间
     * @param period        周期
     * @param amount      金额
     * @return                  积分订单
     */
    PointOrder createPointOrder(final String logInfo, PointAccount account, Date nowDate, String period, Integer amount);

	/**
	 * 创建积分订单
	 *
	 * @param logInfo       日志头
	 * @param account      积分账户
	 * @param nowDate   当前时间
	 * @param endDate        周期
	 * @param amount      金额
	 * @return                  积分订单
	 */
    PointOrder createPointOrder(final String logInfo, PointAccount account, Date nowDate, Date endDate, Integer amount);

    /**
     * 根据帐号和结束日期查询出积分订单
     * @param account       账户
     * @param endDate       结束日期
     * @return                      积分订单
     */
    PointOrder queryPointOrder(PointAccount account, Date endDate);

    /**
     * 合并积分订单
     *
     * @param logInfo
     * @param pointOrder         积分订单
     * @param nowDate           当前时间
     * @param amount            数量
     * @return                          积分订单
     */
    PointOrder mergePointOrder(final String logInfo, PointOrder pointOrder, Date nowDate, Integer amount);;

}
